﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cotizav.CONEXION;
using System.Transactions;
using System.Data.Linq;

namespace Cotizav.CONTROLADOR
{
    class CtrlListaTarifa
    {
        ConexionDataContext conexion;

        internal void registrarListaTarifa(CONEXION.LISTA_TARIFA listaTarifa, CONEXION.EQUIPO equipo)
        {
            using (TransactionScope transactionScope = new TransactionScope())
            {
                using (conexion = new ConexionDataContext())
                {
                    try
                    {
                        //generamos el id
                        int correlativoTarifa = conexion.COTIZAV_CORRELATIVO.Single(x => x.IDENTIFICADOR == "COTIZAV").LISTA_TARIFA.Value;
                        string num = Convert.ToString(correlativoTarifa);
                        string numero = num.Trim().PadLeft(11, '0');
                        string idTarifa = "TAR_" + numero;

                        listaTarifa.idListaTarifa = idTarifa;
                        listaTarifa.idEquipo = equipo.idEquipo;
                        listaTarifa.eliminado = 0;                        

                        //insertamos
                        conexion.LISTA_TARIFA.InsertOnSubmit(listaTarifa);
                        conexion.SubmitChanges();
                        conexion.increm_ContListaTarifa();

                        transactionScope.Complete();
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
        }

        internal LISTA_TARIFA getListTarifa(string idEquipo)
        {
            using (conexion = new ConexionDataContext())
            {
                try
                {
                    DataLoadOptions dlo = new DataLoadOptions();
                    dlo.LoadWith<LISTA_TARIFA>(e => e.EQUIPO);
                    conexion.LoadOptions = dlo;

                    var query = conexion.LISTA_TARIFA.SingleOrDefault(x => x.idEquipo == idEquipo && x.eliminado == 0);
                    return query;
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
    }
}
